package com.baofu.paycore.manager.model;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 支付模型基类
 *
 * User: LZQ  Date: 2016/04/20 ProjectName: paycore Version: 5.0.0
 */
@Getter
@Setter
@ToString(callSuper = true)
public abstract class PayBaseBO implements BaseBO {

    /**
     * 是否为实际结果
     * ACCEPT REAL
     */
    private boolean realFlag;

    /**
     * 状态
     */
    private String status;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 支付单号(支付、充值、转账、提现、退款等)
     */
    private String payNo;

    /**
     * 请求渠道
     */
    private String requestChannel;

    /**
     * 原支付单号
     */
    private String oldPayNo;

    /**
     * 关联号
     */
    private String relationNo;

    /**
     * 请求日期
     */
    private Date requestDate;

    /**
     * 请求源系统
     */
    private String requestSystem;

    /**
     * 源系统业务编号
     */
    private String requestBizNo;

    /**
     * 请求订单号
     */
    private String requestOrderNo;

    /**
     * 请求服务编码
     */
    private String serviceCode;

    /**
     * 货币
     */
    private String ccy;

    /**
     * 支付总金额
     */
    private Long amt;

    /**
     * 原币币种
     */
    private String sourceCcy;

    /**
     * 原币金额
     */
    private Long sourceAmt;

    /**
     * 汇率
     */
    private BigDecimal rate;

    /**
     * 产品大类
     */
    private String bizType;

    /**
     * 产品细类
     */
    private String subBizType;

    /**
     * 商户号
     */
    private String merchantNo;

    /**
     * 付款方信息
     */
    private String paymentInfo;

    /**
     * 产品渠道
     * <p>
     * 是指宝付系统后端对接的具体渠道,如，宝付后端对接的银行渠道等。
     * 目前在商户线下打款业务中用到，用来表示商户具体打款的渠道。
     * </p>
     */
    private String productChannel;

    /**
     * 备注
     */
    private String description;

    /**
     * 操作人
     */
    private String operator;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 更新时间
     */
    private Date updatedAt;

    /**
     * 最后更新人
     */
    private String updatedBy;

    /**
     * 错误码
     */
    private String errorCode;

    /**
     * 错误描述
     */
    private String errorMsg;

    /**
     * 日志跟踪号
     */
    private String tradeLogId;

}
